#include <iostream>
#include <queue>
#include <map>
#include <unordered_map>
#include <vector>
#include <algorithm>
#include <cmath>
#include <string>
#include <cstring>
#include <set>
#include <unordered_set>
using namespace std;
typedef long long ll;
unordered_map<int,int> mp;
const int mod=1e9+7;
void solve(int n)
{
    for(int i=2;i<=n/i;i++)
    {
        while(n%i==0)
        {
            n/=i;
            mp[i]++;
        }
    }
    if(n>1) mp[n]++;
}
int main()
{
	int t;
    cin>>t;
    while(t--)
    {
    	int n;
    	cin>>n;
    	solve(n);
	}
	ll ans=1;
// 	for(auto it:mp) cout<<it.first<<' '<<it.second<<endl;
    for(auto it : mp) ans=ans*(it.second+1)%mod;
    cout<<ans;
	return 0;
}

